home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
System Booster
/
System Booster.iso
/
CD-ROM Tools
/
CyberSound
/
Concepts.TXT
< prev
next >
Wrap
Text File
|
1996-09-26
|
5KB
|
167 lines
==============================================================================
Concepts of CyberSound audio subsystem
(c) 1995 by Christian Buchner
==============================================================================
WARNING: This information is preliminary and may change at any time.
------- Do not count on what you read here!
Suggestions, improvements, critics, etc. welcome!
EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
==============================================================================
Schematics of the new audio subsystem
-------------------------------------
sound.datatype audio.device
\ /
\ /
\ /
\ / "channels"
\ /
\ /
cybersound.library
(administration, mixing channels)
/ \
/ \
/ \
/ \ "stereo 16 bit audio stream"
/ \
/ \
14bit.driver toccata.driver ........driver
| | |
Amiga Hardware Toccata board other Hardware
(DEVS:SoundDrivers)
General
-------
The CyberSound software interface is supposed to provide a new, easy,
flexible and powerful way of playing and manipulating sounds in different
formats. At the same time, the audio.device will be replaced by an
emulation that allows more channels than before.
8 and 16 bit samples, signed, unsigned, a-law, y-law etc will probably be
supported. Playing streams will be supported as well. You will also be
able to reverse the play direction.
Below is a list of possible library functions to provide this interface.
This is only the result of a quick brainstorming. Tell me what you think
of it and make suggestions.
All actions are done via channel handles. These are "black boxes" that can
only be accessed via Taglists, setting or changing attributes.
I currently do not know how to provide a queueing mechanism similar to that
of audio.device. This would be important in order to play a sample in
several parts without an audible interruption - and of course this is very
important for the audio.device emulation!
cybersound.library
------------------
Channel functions:
OpenChannel(TagList) : gets you a new channel handle
SetChannelAttrs(TagList) : modifies the channels attributes
GetChannelAttrs(TagList) : requests the channels attributes
ResetChannel(TagList) : reset (just like after OpenChannel)
CloseChannel() : delete the channel
Replay functions:
Start() : start playing (from the beginning)
Stop() : stop playing
Restart() : restart playing
Reverse() : change replay direction (is this necessary? a tag will do)
Release() : break the repeat, play the stuff after the repeat part
Editing functions:
Scale(From, To) : scale the sample
Resample(FromFreq, ToFreq) : horizontal stretch
Normalize(Flags) : vertical stretch (to use full dynamics)
TypeConvert(ToType) : recalculation into other sample format
Attribute Tags:
SoundDriver : name of the sound driver for replay
Left_Sample : pointer to first left sample word/byte
Right_Sample : pointer to first right sample word/byte
Sample_Length : number of sample words/bytes in the sample
Sample_Type : 8 / 16 bit, signed/unsigned, etc..
Frequency : ...
Volume : ...
Direction : forward, backward
LR_Panning : stereo panning
FB_Panning : for DolbySurround (?)
Repeat_Start : beginning of the repeat part
Repeat_Length : size of the repeat part
Repeat_Count : number of repeats
Repeat_Method : normal repeat, ping-pong, etc..
Current_Offset : position in the sample
Current_Status : playing, paused, stopped, etc...
sound drivers
-------------
*well-defined, but future-expandable layout as Amiga shared libraries
*asynchronous design (via callback-routines), not necessarily linked
to tasks - may use interrupt code/calls as well.
CyberSound prefs program
------------------------
*every driver gets its own prefs
ListView: sound driver selection
Toggle: default sound driver
Switch: adaptive sampling rate / constant rate
Toggle: oversampling
Slider: 8 bit boost (0-8)
Slider: 16 bit drop (0-8)
14Bit Prefs program
-------------------
D/A converter calibration
CONTACT ADDRESS
---------------
EMAIL: flowerp@eikon.e-technik.tu-muenchen.de
FidoNet: 2:2480/465
SnailMail:
Christian Buchner
Ganghoferstraße 2
82110 Germering
Germany
Tel.: +49-(0)89/844872